package com.example.starapp.utils;

import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class AssetsUtils{
        /*读取文件当中的字符串*/
        public static String getJsonByAssets(Context context, String filename){
//        1.获取到Assets文件管理器
            AssetManager am = context.getResources().getAssets();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();  //内存流
//        2.读取内容
            try {
                InputStream is = am.open(filename);
//            3.读取输入流当中内容
                int hasRead = 0;  // 获取每一次读取的长度
                byte[]buf = new byte[1024]; //存储每一次读取的数组
                while (true){
                    hasRead = is.read(buf);
                    if (hasRead == -1) {
                        break;
                    }
                    baos.write(buf,0,hasRead);
                }
//            将内存流转换成字符串
                String msg = baos.toString();
                is.close();
                return msg;
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        /* 读取Assets文件夹当中的图片*/
        public static Bitmap getBitmapByAssets(Context context, String filename){
            Bitmap imgBitmap = null;
//        1.获取Assets文件夹管理者
            AssetManager am  = context.getResources().getAssets();
//        2.打开文件，获取输入流
            try {
                InputStream is = am.open(filename);
//            3.通过Bitmap管理器，将输入流直接转换成位图对象
                imgBitmap = BitmapFactory.decodeStream(is);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return imgBitmap;
        }
}